MENTAL, UN SISTEMA
OPERATIVO UNIVERSAL

“La conciencia es el Sistema Operativo” (Gregg Braden)



Sistema Operativo

Concepto

Un sistema operativo es una plataforma software, segura y eficiente, que actúa como intermediaria entre los usuarios (y sus aplicaciones) y los recursos hardware del sistema. Esta plataforma consta de un conjunto de procesos concurrentes, orientados a gestionar diferentes tareas. Los primeros sistemas concurrentes fueron los propios sistemas operativos.

Aunque los primeros sistemas operativos eran bastante simples (eran monousuario y monotarea), históricamente se han ido generalizando y enriqueciendo progresivamente con funcionalidades cada vez más avanzadas y de mayor abstracción: interfaces gráficos de usuario, navegador, sistemas de comunicación, etc. Esto ha producido como resultado sistemas operativos cada vez más complejos (multiusuario, multitarea y distribuidos). Además, diferentes casas comerciales han desarrollado sistemas operativos específicos para sus sistemas, ocultando en gran medida su estructura interna.


Estructura de un Sistema Operativo

Un sistema operativo se compone básicamente de tres capas funcionales:
  1. El núcleo (kernel).
    Es la capa más cercana al hardware. Gestiona directamente los recursos físicos (procesador, memoria, periféricos, etc.) .

  2. La capa de servicios.
    Proporciona una interfaz de programación para las aplicaciones, presentando los recursos disponibles en forma de máquina abstracta o virtual, ocultando los detalles del hardware para facilitar los desarrollos. Entre los servicios están:


  3. El interfaz de usuario.
    Es el intermediario entre el usuario y las aplicaciones, para la comunicación interactiva usuario-ordenador. Puede ser un intérprete de comandos (shell) o una interface gráfica de usuario (Graphical User Interface, GUI). En el caso de comandos, normalmente existe un lenguaje de guiones (scripts) para facilitar el desarrollo de meta-aplicaciones, es decir, aplicaciones basadas en aplicaciones.

Problemas de los actuales sistemas operativos
MENTAL como Sistema Operativo-Descriptivo Universal

MENTAL se puede considerar, a nivel conceptual, el núcleo conceptual universal de todos los sistemas operativos, el sistema operativo universal, en principio monousuario y multitarea (por su soporte de concurrencia). El núcleo conceptual es el conjunto formado por las 12 primitivas semánticas universales, que cumplen las propiedades: MENTAL, por lo tanto, es un lenguaje y una plataforma semántica que necesita 3 elementos para su implantación.
  1. El intérprete de MENTAL. Realiza la evaluación o ejecución de expresiones.

  2. El entorno. Es el espacio abstracto en el que residen las expresiones y que sirve como sistema universal de comunicación entre usuarios, aplicaciones, periféricos y otros sistemas. Se implementa como memoria.

  3. El kernel, que es la implementación física del núcleo conceptual.

Ventajas

Con MENTAL como núcleo de sistema operativo universal, desaparecen todos los problemas reseñados de los sistemas operativos tradicionales: Además de superar las limitaciones apuntadas, hay toda una serie de ventajas añadidas derivadas de las propias capacidades del lenguaje, entre ellas:
Entrada/Salida

MENTAL no tiene instrucciones de entrada/salida, pues su carácter universal no le permite gestionar dispositivos específicos de ningún tipo. Aún así, es posible hacer generalizaciones respecto a las unidades de entrada/salida como elementos de comunicación con el mundo exterior.

Adenda

Forth

Inventado por Charles (Chuck) H. Moore, es un lenguaje de programación y un sistema operativo. Es también un nuevo paradigma y una filosofía. Forth fue la respuesta personal de su autor a su frustración con la multitud de lenguajes de programación existentes entonces. Su idea fue crear un lenguaje simple, pequeño, claro, flexible y extensible, y crear la combinación más simple y efectiva de hardware y software, de tal forma que Forth fuera el lenguaje ensamblador de la máquina.

Características como lenguaje: Características como sistema operativo:
Smalltalk

El término “smalltalk” significa “conversación ligera, sin importancia”. Smalltalk es un sistema operativo y un lenguaje de programación orientado a objetos, desarrollado en Xerox PARC (Palo Alto Research Center) por un grupo de investigadores dirigido por Alan Key en los 1970’s. Como sistema unificado, elimina la distinción entre lenguaje de programación y sistema operativo. Smalltalk ha sido el primer lenguaje orientado a objetos verdaderamente popular, y ha ejercido una gran influencia en el desarrollo de otros lenguajes con orientación a objetos como Objetive-C, Actor, Java y Ruby.

La motivación para el desarrollo de Smalltalk fue crear un lenguaje humanista, que reflejase el modelo de la mente humana, incluyendo los aspectos creativo e interactivo.

La filosofía de Smalltalk es la siguiente: Las primeras versiones de Smalltalk eran internas de Xerox. Smalltalk-80 fue la primera versión externa. Actualmente existen muchas versiones comerciales. También existe una versión gratuita (GNU Smalltalk). En 1997, Smalltalk se convitió en estandar ANSI.


Cedar

“Cedar” (en español, “cedro”) es un lenguaje y un sistema operativo desarrollado también en Xerox PARC como un entorno de investigación de programas experimentales.

El lenguaje es un superconjunto de Mesa (otro lenguaje de Xerox PARC), con tipos de datos dinámicos y un tipo de puntero universal.

El sistema operativo es una colección de módulos que comparten el mismo espacio de direcciones. No hay distinción entre módulos de usuario y del sistema. Está organizado en capas de módulos de diferentes niveles de abstracción: El sistema operativo es monousuario, aunque soporta aplicaciones concurrentes. Aunque es abierto, se protege mediante el Safe Storage, que se sitúa justo encima de la máquina virtual.


UCSD Pascal

Es un lenguaje de desarrollo y un sistema operativo. Es independiente de la máquina. Es una versión interactiva de Pascal para ordenadores personales. Fue desarrollado en 1978 en el Institute for Information System de la Universidad de California San Diego (UCSD) bajo la dirección de Kenneth Bowles. Hasta entonces, Pascal (desarrollado por Niklaus Wirth en 1969 como evolución del Algol) solo estaba disponible en mainframes (grandes ordenadores) y funcionando en modo batch (proceso por lotes). UCSD Pascal contribuyó enormemente a la difusión de Pascal y tuvo una gran influencia en la evolución de los lenguajes de programación por sus nuevos conceptos, entre ellos: El UCSD p-System fue un sistema operativo desarrollado con UCSD Pascal, basado en una máquina virtual o abstracta (independiente de la arquitectura de la máquina) llamada p-Machine. Fue muy popular en los años 1970s y 1980s. Fue uno de los tres sistemas operativos disponibles en el primer IBM PC (junto con PC-DOS y CP/M-86). IBM lo utilizó para su máquina DisplayWriter de proceso de textos.


Oberon

Oberon es un personaje de Shakespeare y un satélite de Urano. También es un lenguaje de programación y un sistema operativo (Oberon System). Su filosofía es la simplicidad y la unificación (lenguaje-sistema). Está orientado a componentes, es completamente abierto (como lenguaje y como sistema) y es, por lo tanto, extensible. Aunque el lenguaje puede usarse sin el sistema operativo, su máxima potencia reside cuando se usan juntos.

El lenguaje de programación, desarrollado por Niklaus Wirth en el Instituto de Tecnología de Zurich, es una evolución de Modula-2 (que, a su vez, es una evolución de Pascal), con influencias de Cedar y Smalltalk. El sistema operativo fue desarrollado por Wirth en colaboración con Jürg Gutknecht.

El llamado “proyecto Oberon” se lanzó en 1985. En 1992, Wirth y H. P. Mössenböck realizaron algunas adiciones al lenguaje original para crear el Oberon-2. En 1997, Oberon Microsystems, Inc. (un spinoff del Instituto) realizó algunas extensiones a Oberon-2 y lo denominó “Component Pascal”, con el objeto de expresar su filosofía de componentes y su origen (Pascal).

Características del lenguaje: Características del sistema operativo:
MUMPS

Es un sistema operativo, un lenguaje de programación y un sistema de gestión de base de datos. “Mumps” (en español, “paperas”) son las siglas de Massachusetts General Hospital Utility Multiprogramming System. Su nombre alternativo abreviado es M. Fue desarrollado por este hospital en 1960 para la gestión hospitalaria, pero se ha convertido en un lenguaje de propósito general. Es uno de los pocos lenguajes ANSI (junto con Cobol, Fortran y PL/I).

Características a destacar son:
Java

Es un lenguaje creado por Sun Microsystems. Está orientado a objetos y tiene soporte de concurrencia mediante threads (hebras). Un programa Java, al compilarse, produce un código neutro (independiente de la arquitectura de la máquina), que se llama “bytecode”.

La plataforma Java es un entorno abstracto de ejecución de aplicaciones Java, que es también independiente de la arquitectura de la máquina. Consta de una “máquina virtual Java” (Java Virtual Machine, JVM) y un conjunto de librerías de clases, que proporcionan los servicios necesarios (funciones, entrada/salida, acceso a redes, etc.). La JVM se ejecuta sobre un sistema operativo, interpretando el bytecode para convertirlo en instrucciones del procesador de la máquina. La JVM no está desarrollada en Java (se suele desarrollar en C).

La plataforma Java es extensible actuando sobre la librería de clases.

JavaOS es un sistema operativo desarrollado en Java y que funciona sobre una gran variedad de procesadores (Intel, PowerPC, etc.). Es más eficiente que una JVM.


Bibliografía

Sistemas operativos Forth Smalltalk Cedar UCSD Pascal Oberon MUMPS Java